package com.sky.service;
import com.sky.dto.OrdersCancelDTO;
import com.sky.dto.OrdersPageQueryDTO;
import com.sky.dto.OrdersRejectionDTO;
import com.sky.result.PageResult;

/**
 * @author 符健清
 * @version 1.0
 * 订单管理接口类
 */
@SuppressWarnings({"all"})
public interface OrderService {
    /**
     * 订单分页条件查询
     * @param ordersPageQueryDTO
     * @return
     */
    PageResult pageSelectOrder(OrdersPageQueryDTO ordersPageQueryDTO);

    /**
     * 取消订单
     * @param ordersCancelDTO
     */
    void cancelOrder(OrdersCancelDTO ordersCancelDTO);

    /**
     * 待接单数量
     * @return
     */
    Integer counToBeConfirmed();

    /**
     * 待派送的数量
     * @return
     */
    Integer countConfirmed();

    /**
     * 派送中的数量
     * @return
     */
    Integer deliveryLiProgress();

    /**
     * 完成订单
     * @param id
     */
    void finishOrder(Integer id);


    /**
     * 拒单
     * @param ordersRejectionDTO
     */
    void rejectionOrder(OrdersRejectionDTO ordersRejectionDTO);

    /**
     * 接单
     * @param id
     */
    void confirmOrder(Long id);

    /**
     *  id 查村订单
     * @param id
     */
    void selectOrderById(Integer id);

    /**
     * 派送订单
     * @param id
     */
    void sendOrder(Integer id);
}
